//package com.shop.loan.oss;
//
//import cn.ucloud.ufile.util.MimeTypeUtil;
//import com.shop.loan.model.vo.UfileVo;
//import org.springframework.stereotype.Service;
//import org.springframework.util.StringUtils;
//import sun.security.validator.ValidatorException;
//
//import java.util.Base64;
//
//
///**
// * @description:
// * @author: joshua
// * @E-mail: joshua.yin@ucloud.cn
// * @date: 2018-11-29 14:20
// */
//
//@Service
//public class UfileAuthService {
//
//    public String calculateAuthroization(UfileVo ufileVo) throws Exception {
//        StringBuffer signData = new StringBuffer();
//        signData.append(ufileVo.getMethod() + "\n");
//        signData.append(ufileVo.getMd5() + "\n");
//        if(StringUtils.hasLength(ufileVo.getFileName())){
//            signData.append(MimeTypeUtil.getMimeType(ufileVo.getFileName()) + "\n");
//        }else{
//            signData.append(ufileVo.getContentType() + "\n");
//        }
//        signData.append(ufileVo.getDate() + "\n");
//        signData.append("/" + Constants.bucket);
//        signData.append("/" + ufileVo.getKey());
//        String signature = signature(Constants.privateKey, signData.toString());
//
//        StringBuilder res = new StringBuilder("UCloud ")
//                .append(Constants.publicKey)
//                .append(":")
//                .append(signature);
//        return res.toString();
//
//    }
//
//    public String calculatePrivateUrlAuthroization(AuthPrivateUrlRequest request) {
//        try {
//            ParameterValidator.validator(request);
//
//            StringBuffer signData = new StringBuffer();
//            signData.append(request.getMethod() + "\n");
//            signData.append("\n");
//            signData.append("\n");
//            signData.append(request.getExpires() + "\n");
//            signData.append("/" + request.getBucket());
//            signData.append("/" + request.getKey());
//
//            return signature(Constants.privateKey, signData.toString());
//        } catch (ValidatorException e) {
//            return e.getMessage();
//        } catch (Exception e) {
//            return e.getMessage();
//        }
//    }
//
//    private String signature(String key, String data) throws Exception {
//        byte[] hmacSha1 = null;
//        hmacSha1 = Encryptor.Hmac_SHA1(key, data);
//
//        if (hmacSha1 == null || hmacSha1.length == 0)
//            throw new Exception("Encrypt Hmac-SHA1 failed!");
//
//        return Base64.getEncoder().encodeToString(hmacSha1);
//    }
//}